 if ( $.browser.msie ) {
    $("#Css").html("<style>@import url('"+urlbase+"/Css/fontIE.css');</style>")
 } else {
    $("#Css").html("<style>@import url('"+urlbase+"/Css/fontFF.css');</style>")
 }


$("#BaseAPP").html(''
	+'<div class="MenuBar-sd"><div class="ManuBar">'
    
    	+'<div class="icn card2"></div>'
       +' <div class="icn card"></div>'
        
        +'<div class="LFT-IC">'
        	+'<div class="icn smile" onclick="PostActivity();" title="Promover"></div>'
        	+'<a href="http://www.orkut.com.br/Main#Community?cmm=119504980" target="_blank"><div class="icn plus" title="Comunidade"></div></a>'
        	+'<div class="icn help" title="Ajuda"></div>'

    +'</div>'
	+'</div></div>'
    

	+'<div id="MenuB">'
    +'<div class="BaseBottom">'
    
    	+'<div id="T-tb" class="noSel">'
        	+'<div class="icn palette"></div> '
            +'<div class="txt">Temas</div>'
        +'</div>'
        +'<div id="C-tb" class="noSel" style="margin-left:110px">'
        	+'<div class="icn color"></div>'
            +'<div class="txt">Cores</div>'
        +'</div>'
        +'<div id="A-tb" class="noSel" style="margin-left:220px">'
        	+'<div class="icn ass"></div>'
            +'<div class="txt">Assinatura</div>'
        +'</div>'

	+'</div>'
    +'</div>'


+'<div id="selTB">' +'</div>'

	+'<div id="MainCard"></div>'
);

/// card creator 

$("#MainCard").html(''
+'	<div id="Card-Base">'
       +'<div id="Card-Effect">'
    	  +'<div id="Card-Border">'
          
     
     +'<div id="Card-Pic"></div>'
     
    +'<div id="Card-Info" class="un">Name:</div>'
    +'<div id="Card-Info" class="uact">Activity:</div>'
    +'<div id="Card-Info" class="ud">Member since:</div>'
    +'<div id="Card-Info" class="uhl">Headline:</div>'
    +'<div id="Card-Info" class="uass">Sig.</div>'
    +'<div id="Card-Info" class="uln">Licence NO.</div> '
    +'<div id="create">'
        +'<span id="menuopt-m">Jan</span>. /  '
    	+'<span id="menuopt-y">2012</span>'	
    +'</div>'
    
    +'<div id="FloatMenu">'
	+'</div>'
    
    +'<input id="Card-Name" value="" maxlength="27" readonly="readonly"/>'
    +'<div id="Card-Actv">Membro</div>'
    +'<textarea id="Card-Headline" maxlength="20">...</textarea>'
	+'<input id="Card-Ass" class="Sig0" value="" maxlength="27"/>'
    +'<div id="Card-ID">000000000000000000</div>'
    +'<div id="linha"></div>'
    
    
    	  +'</div>'
      +'</div>'
	+'</div>'
);

// Galeria de Temas

$('#T-tb').click(function() {
	
	tabsL('T-tb','180');
	
	$("#selTB").html(''
		+'<div class="Galery">'
		
		+'<div id="Themes" onclick="changeTheme(\'333\',\'Amigos\',\'Amigos\');" title="Amigos"></div>'
		+'<div id="Themes" onclick="changeTheme(\'d34b44\',\'Amor\',\'Amor\');" title="Amor"></div>'
		+'<div id="Themes" onclick="changeTheme(\'000\',\'Aniversario\',\'Aniversario\');" title="Aniversário"></div>'
		+'<div id="Themes" onclick="changeTheme(\'000\',\'Chars\',\'0\');" title="Caracteres"></div>'
		+'<div id="Themes" onclick="changeTheme(\'CCC\',\'Frutas\',\'Frutas\');" title="Frutas"></div>'
		+'<div id="Themes" onclick="changeTheme(\'444\',\'Meme\',\'Meme\');" title="Memes"></div>'
		+'<div id="Themes" onclick="changeTheme(\'000\',\'Rock\',\'Rock\');" title="Rock"></div>'
		+'<div id="Themes" onclick="changeTheme(\'9d2f6e\',\'Luzes\',\'0\');" title="Luzes"></div>'
		+'<div id="Themes" onclick="changeTheme(\'1a3c7a\',\'Tecnologia\',\'0\');" title="Tecnologia"></div>'
        +'<div id="Themes" onclick="changeTheme(\'e2a95a\',\'Onca\',\'0\');" title="Onça"></div>'
        +'<div id="Themes" onclick="changeTheme(\'7c7c7c\',\'Loucos\',\'0\');" title="Loucos"></div>'
        +'<div id="Themes" onclick="changeTheme(\'fdeb6f\',\'Help\',\'Help\');" title="Help"></div>'
        
	+'</div>');

});


// Cores do Cartão

$('#C-tb').click(function() {
	
	changeTheme('000','0','0');
	
	tabsL('C-tb','250');
	
	$("#selTB").html(''
		+'<div id="colorpicker">'
		+'</div>');
		
	$('#colorpicker').farbtastic('#Card-Base');
});

// Cores do Cartão

$('#A-tb').click(function() {
	
	tabsL('A-tb','100');
	
	$("#selTB").html('<div style="background: url(Img/Assinatura.png) top center; margin: 0 auto; width:662px; height:47px">'
		+'<div id="Fonts" onclick="nClass(\'Sig0\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig1\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig2\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig3\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig4\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig5\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig6\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig7\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig8\');"></div>'
		+'<div id="Fonts" onclick="nClass(\'Sig9\');"></div>'
		+'</div>');
	
});


//// outras funções

$("#selTB").animate({
   		 height:180,
		 opacity: 0.99
	  }, 800, function() {
				$('#T-tb').click();
					$('#MenuB').animate({
						height:40,
						opacity: 0.99
	  				},800);
	  });
	  
function tabsL(cl,ss){
	$('#T-tb,#C-tb, #A-tb').removeAttr('class');
	$('#T-tb,#C-tb, #A-tb').className = '';
	$('#T-tb,#C-tb, #A-tb').addClass('noSel');
	$('#'+cl).addClass('Sel');
	
	$('#selTB').animate({
						height:ss
	  				},400);
}


function PostActivity() {
   var params = {};
   params[opensocial.Activity.Field.TITLE] = 
                '<a href="/Main#Application?appId=891044030824">'
				+'<img src="http://lh4.ggpht.com/-mgN0yODC3bc/TshXEetqlmI/AAAAAAAAAwc/5lrH3F9CPZA/update-card.png">'
				+'</a>';
   params[opensocial.Activity.Field.BODY] = ''
				+'<table width="100%" border="0" cellpadding="5" cellspacing="5" style="background:#FFF">'
  				+'<tr>'
    			+'<td width="37" valign="top"><img src="http://lh3.ggpht.com/-x4xg_iS_V_U/TshUF5jbSsI/AAAAAAAAAwU/4CIPpAFp9DU/ballon.gif"></td>'
    			+'<td><a href="/Main#Application?appId=891044030824"> Ganhou um cartão personalizado para seu perfil</a></td>'
 				+'</tr>'
				+'</table>';

   opensocial.requestCreateActivity(opensocial.newActivity(params),
        opensocial.CreateActivityPriority.HIGH, callback);
}

///////////////// data e outros

function changeOrkutDate(){
  $("#FloatMenu").html(''
  	+'<div class="MenuTitle" onclick="$(\'.tb\').fadeOut(500);$(\'#FloatMenu\').slideUp(900);$(this).slideUp(400);">Quando você criou seu perfil?'
		+'<div class="icn arrowup"></div>'
	+'</div>'
    +'<table class="tb" width="160px" border="0" cellspacing="4" cellpadding="0" style="margin-left:15%; padding-bottom:5px;">'
  +'<tr>'
    +'<td class="spn_title">Mes</td>'
    +'<td class="spn_title">Ano</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Jan\')">JANEIRO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2012\')">2012</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Fev\')">FEVEREIRO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2011\')">2011</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Mar\')">MARÇO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2010\')">2010</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Abr\')">ABRIL</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2009\')">2009</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Mai\')">MAIO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2008\')">2008</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Jun\')">JUNHO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2007\')">2007</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Jul\')">JULHO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2006\')">2006</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Ago\')">AGOSTO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2005\')">2005</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Set\')">SETEMBRO</td>'
    +'<td class="menuopt" onclick="changeYmenuopt(\'2004\')">2004</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Out\')">OUTUBRO</td>'
    +'<td></td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Nov\')">NOVEMBRO</td>'
    +'<td></td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeMmenuopt(\'Dez\')">DEZEMBRO</td>'
    +'<td></td>'
  +'</tr>'
+'</table>'); 

	$("#FloatMenu").slideDown(400);
	$(".MenuTitle").slideDown(900);
	  $('.tb').animate({
   		 opacity: 0.99
	  }, 900, function() {
	  });
}

function changeMmenuopt(m){
	$("#menuopt-m").html(m);
	$(".tb").fadeOut(500);
	$("#FloatMenu").slideUp(900);
	$(".MenuTitle").slideUp(400);
}
	
function changeYmenuopt(y){
	$("#menuopt-y").html(y);
	$(".tb").fadeOut(500);
	$("#FloatMenu").slideUp(900);
	$(".MenuTitle").slideUp(400);
}

$('#create').click(function() {
 	 changeOrkutDate();
});

// alterar opção membro

function changeMember(){
  $("#FloatMenu").html(''
  	+'<div class="MenuTitle" onclick="$(\'.tb\').fadeOut(500);$(\'#FloatMenu\').slideUp(900);$(this).slideUp(400);">Sua principal atividade no orkut?'
		+'<div class="icn arrowup"></div>'
	+'</div>'
    +'<table class="tb" width="160px" border="0" cellspacing="4" cellpadding="0" style="margin-left:15%; padding-bottom:5px;">'
  +'<tr>'
    +'<td class="spn_title">Eu Sou:</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Membro\')">Membro</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Moderador\')">Moderador</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Ajudante\')">Ajudante</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Desenvolvedor\')">Desenvolvedor</td>'
  +'</tr>'  
   +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Caçador de Selos\')">Caçador de Selos</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="spn_title">-------------------------</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Moderadora\')">Moderadora</td>'
  +'</tr>'
  +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Desenvolvedora\')">Desenvolvedora</td>'
  +'</tr>'
    +'<tr>'
    +'<td class="menuopt" onclick="changeAct(\'Caçadora de Selos\')">Caçadora de Selos</td>'
  +'</tr>'

+'</table>'); 

	$("#FloatMenu").slideDown(400);
	$(".MenuTitle").slideDown(900);
	  $('.tb').animate({
   		 opacity: 0.99
	  }, 900, function() {
	  });
}

function changeAct(a){
	$("#Card-Actv").html(a);
	$(".tb").fadeOut(500);
	$("#FloatMenu").slideUp(900);
	$(".MenuTitle").slideUp(400);
}
$('#Card-Actv').click(function() {
 	 changeMember();
});

function changeTheme(c,l,a){
	document.getElementById("Card-Base").style.background="#"+c+" url('"+urlbase+"/Img/Temas/Card/"+l+".png') repeat center";
	document.getElementById("MainCard").style.backgroundImage="url('"+urlbase+"/Img/Temas/Fundo/"+a+".png')";
	$(".buttons").show();
	$(".NoColor").show();
	}

	  
function nClass(cl){
	$('#Card-Ass').removeAttr('class');
	$('#Card-Ass').className = '';
	$('#Card-Ass').addClass(cl);
}

/**
 * Farbtastic Color Picker 1.2
 */

jQuery.fn.farbtastic = function (callback) {
  $.farbtastic(this, callback);
  return this;
};

jQuery.farbtastic = function (container, callback) {
  var container = $(container).get(0);
  return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
}

jQuery._farbtastic = function (container, callback) {
  // Store farbtastic object
  var fb = this;

  // Insert markup
  $(container).html('<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>');
  var e = $('.farbtastic', container);
  fb.wheel = $('.wheel', container).get(0);
  // Dimensions
  fb.radius = 84;
  fb.square = 100;
  fb.width = 194;

  // Fix background PNGs in IE6
  if (navigator.appVersion.match(/MSIE [0-6]\./)) {
    $('*', e).each(function () {
      if (this.currentStyle.backgroundImage != 'none') {
        var image = this.currentStyle.backgroundImage;
        image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
        $(this).css({
          'backgroundImage': 'none',
          'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
        });
      }
    });
  }

  /**
   * Link to the given element(s) or callback.
   */
  fb.linkTo = function (callback) {
    // Unbind previous nodes
    if (typeof fb.callback == 'object') {
      $(fb.callback).unbind('keyup', fb.updateValue);
    }

    // Reset color
    fb.color = null;

    // Bind callback or elements
    if (typeof callback == 'function') {
      fb.callback = callback;
    }
    else if (typeof callback == 'object' || typeof callback == 'string') {
      fb.callback = $(callback);
      fb.callback.bind('keyup', fb.updateValue);
      if (fb.callback.get(0).value) {
        fb.setColor(fb.callback.get(0).value);
      }
    }
    return this;
  }
  fb.updateValue = function (event) {
    if (this.value && this.value != fb.color) {
      fb.setColor(this.value);
    }
  }

  /**
   * Change color with HTML syntax #123456
   */
  fb.setColor = function (color) {
    var unpack = fb.unpack(color);
    if (fb.color != color && unpack) {
      fb.color = color;
      fb.rgb = unpack;
      fb.hsl = fb.RGBToHSL(fb.rgb);
      fb.updateDisplay();
    }
    return this;
  }

  /**
   * Change color with HSL triplet [0..1, 0..1, 0..1]
   */
  fb.setHSL = function (hsl) {
    fb.hsl = hsl;
    fb.rgb = fb.HSLToRGB(hsl);
    fb.color = fb.pack(fb.rgb);
    fb.updateDisplay();
    return this;
  }

  /////////////////////////////////////////////////////

  /**
   * Retrieve the coordinates of the given event relative to the center
   * of the widget.
   */
  fb.widgetCoords = function (event) {
    var x, y;
    var el = event.target || event.srcElement;
    var reference = fb.wheel;

    if (typeof event.offsetX != 'undefined') {
      // Use offset coordinates and find common offsetParent
      var pos = { x: event.offsetX, y: event.offsetY };

      // Send the coordinates upwards through the offsetParent chain.
      var e = el;
      while (e) {
        e.mouseX = pos.x;
        e.mouseY = pos.y;
        pos.x += e.offsetLeft;
        pos.y += e.offsetTop;
        e = e.offsetParent;
      }

      // Look for the coordinates starting from the wheel widget.
      var e = reference;
      var offset = { x: 0, y: 0 }
      while (e) {
        if (typeof e.mouseX != 'undefined') {
          x = e.mouseX - offset.x;
          y = e.mouseY - offset.y;
          break;
        }
        offset.x += e.offsetLeft;
        offset.y += e.offsetTop;
        e = e.offsetParent;
      }

      // Reset stored coordinates
      e = el;
      while (e) {
        e.mouseX = undefined;
        e.mouseY = undefined;
        e = e.offsetParent;
      }
    }
    else {
      // Use absolute coordinates
      var pos = fb.absolutePosition(reference);
      x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
      y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
    }
    // Subtract distance to middle
    return { x: x - fb.width / 2, y: y - fb.width / 2 };
  }

  /**
   * Mousedown handler
   */
  fb.mousedown = function (event) {
    // Capture mouse
    if (!document.dragging) {
      $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
      document.dragging = true;
    }

    // Check which area is being dragged
    var pos = fb.widgetCoords(event);
    fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;

    // Process
    fb.mousemove(event);
    return false;
  }

  /**
   * Mousemove handler
   */
  fb.mousemove = function (event) {
    // Get coordinates relative to color picker center
    var pos = fb.widgetCoords(event);

    // Set new HSL parameters
    if (fb.circleDrag) {
      var hue = Math.atan2(pos.x, -pos.y) / 6.28;
      if (hue < 0) hue += 1;
      fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
    }
    else {
      var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
      var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
      fb.setHSL([fb.hsl[0], sat, lum]);
    }
    return false;
  }

  /**
   * Mouseup handler
   */
  fb.mouseup = function () {
    // Uncapture mouse
    $(document).unbind('mousemove', fb.mousemove);
    $(document).unbind('mouseup', fb.mouseup);
    document.dragging = false;
  }

  /**
   * Update the markers and styles
   */
  fb.updateDisplay = function () {
    // Markers
    var angle = fb.hsl[0] * 6.28;
    $('.h-marker', e).css({
      left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
      top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
    });

    $('.sl-marker', e).css({
      left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
      top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
    });

    // Saturation/Luminance gradient
    $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));

    // Linked elements or callback
    if (typeof fb.callback == 'object') {
      // Set background/foreground color
      $(fb.callback).css({
        backgroundColor: fb.color,
        color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
      });

      // Change linked value
      $(fb.callback).each(function() {
        if (this.value && this.value != fb.color) {
          this.value = fb.color;
        }
      });
    }
    else if (typeof fb.callback == 'function') {
      fb.callback.call(fb, fb.color);
    }
  }

  /**
   * Get absolute position of element
   */
  fb.absolutePosition = function (el) {
    var r = { x: el.offsetLeft, y: el.offsetTop };
    // Resolve relative to offsetParent
    if (el.offsetParent) {
      var tmp = fb.absolutePosition(el.offsetParent);
      r.x += tmp.x;
      r.y += tmp.y;
    }
    return r;
  };

  /* Various color utility functions */
  fb.pack = function (rgb) {
    var r = Math.round(rgb[0] * 255);
    var g = Math.round(rgb[1] * 255);
    var b = Math.round(rgb[2] * 255);
    return '#' + (r < 16 ? '0' : '') + r.toString(16) +
           (g < 16 ? '0' : '') + g.toString(16) +
           (b < 16 ? '0' : '') + b.toString(16);
  }

  fb.unpack = function (color) {
    if (color.length == 7) {
      return [parseInt('0x' + color.substring(1, 3)) / 255,
        parseInt('0x' + color.substring(3, 5)) / 255,
        parseInt('0x' + color.substring(5, 7)) / 255];
    }
    else if (color.length == 4) {
      return [parseInt('0x' + color.substring(1, 2)) / 15,
        parseInt('0x' + color.substring(2, 3)) / 15,
        parseInt('0x' + color.substring(3, 4)) / 15];
    }
  }

  fb.HSLToRGB = function (hsl) {
    var m1, m2, r, g, b;
    var h = hsl[0], s = hsl[1], l = hsl[2];
    m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
    m1 = l * 2 - m2;
    return [this.hueToRGB(m1, m2, h+0.33333),
        this.hueToRGB(m1, m2, h),
        this.hueToRGB(m1, m2, h-0.33333)];
  }

  fb.hueToRGB = function (m1, m2, h) {
    h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
    if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
    if (h * 2 < 1) return m2;
    if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
    return m1;
  }

  fb.RGBToHSL = function (rgb) {
    var min, max, delta, h, s, l;
    var r = rgb[0], g = rgb[1], b = rgb[2];
    min = Math.min(r, Math.min(g, b));
    max = Math.max(r, Math.max(g, b));
    delta = max - min;
    l = (min + max) / 2;
    s = 0;
    if (l > 0 && l < 1) {
      s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
    }
    h = 0;
    if (delta > 0) {
      if (max == r && max != g) h += (g - b) / delta;
      if (max == g && max != b) h += (2 + (b - r) / delta);
      if (max == b && max != r) h += (4 + (r - g) / delta);
      h /= 6;
    }
    return [h, s, l];
  }

  // Install mousedown handler (the others are set on the document on-demand)
  $('*', e).mousedown(fb.mousedown);

    // Init color
  fb.setColor('#000000');

  // Set linked elements/callback
  if (callback) {
    fb.linkTo(callback);
  }
}